﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using ChiDao.Component.Utils;
using ChiDao.Site.Models;
using ChiDao.Business.Models.Account;
using ChiDao.Business.Models.Security;

namespace ChiDao.Business.Service
{
    /// <summary>
    ///     菜单模块站点业务契约
    /// </summary>
    public interface IMenuInfoService
    {
        #region 属性
        IQueryable<MenuInfo> MenuInfoes { get; }
        #endregion

        #region 方法
        /// <summary>
        /// 获取菜单（根据用户ID）
        /// </summary>
        /// <param name="userID">用户ID</param>
        /// <returns></returns>
        List<MenuInfo> GetMenusByUserID(Guid userID);

        /// <summary>
        /// 获取菜单（根据用户名称）
        /// </summary>
        /// <param name="userName">用户名称</param>
        /// <returns></returns>
        List<MenuInfo> GetMenusByUserName(string userName);

        /// <summary>
        /// 获取菜单（根据角色ID）
        /// </summary>
        /// <param name="roleID">角色ID</param>
        /// <returns></returns>
        //List<MenuInfo> GetMenusByRoleID(Guid roleID);

        /// <summary>
        /// 获取当前系统所有的MenuInfo
        /// </summary>
        /// <returns></returns>
        List<MenuInfo> GetAllMenuInfoByAssembly();

        List<MenuInfo> QueryMenuInfoPlist(string query, int start, int limit, out long total);
        #endregion
    }
}